// 正则校验对象
class Regex {
  password(value: string) {
    this.alpha_number_symbol(value)
    // regex.alpha_number_symbol(value)
  }
  chinese(value: string) {
    // '只允许输入中文'
    return /^[\u4E00-\u9FA5]*$/.test(value)
  }
  route_path(value: string) {
    // '路径'
    return /^\/[a-zA-Z0-9_]+(\/[a-zA-Z0-9_]+)*(\.[a-zA-Z0-9]+)?$/.test(value)
  }
  alpha_underline(value: string) {
    // '只允许输入字母和下划线'
    return /^[a-zA-Z_]*$/.test(value)
  }
  number(value: string) {
    // '只允许输入数字'
    if (!value) return true
    return /^[0-9]*$/.test(value)
  }
  alpha(value: string) {
    // '只允许输入字母'
    return /^[a-zA-Z]*$/.test(value)
  }
  alpha_symbol(value: string) {
    // '只允许输入字母和部分特殊符号'
    return /^[a-zA-Z_@#$%&*.!?;+=-]*$/.test(value)
  }
  alpha_number(value: string) {
    // '只允许输入字母和数字'
    return /^[0-9a-zA-Z]*$/.test(value)
  }
  number_symbol(value: string) {
    // '只允许输入数字和部分特殊符号'
    return /^[0-9_@#$%&*.!?;+=-]*$/.test(value)
  }
  alpha_number_symbol(value: string) {
    // '只允许输入字母、数字和部分特殊符号'
    return /^[0-9a-zA-Z_@#$%&*.!?;+=-]*$/.test(value)
  }
  domain(value: string) {
    // '请正确输入域名'
    return /^[a-zA-Z0-9][-a-zA-Z0-9]{062}(\.[a-zA-Z0-9][-a-zA-Z0-9]{062})+\.?/.test(value)
  }
  mobile(value: string) {
    // '请输入正确的手机号'
    return /^((0\d{23}-\d{78})|(1[3584]\d{9}))$/.test(value)
  }
  positiveNumber(value: string) {
    // '只能输入正实数并保留2位小数'
    if (!value) return true
    return /^[0-9]+(.[0-9]{2})?$/.test(value)
  }
  blankSpace(value: string) {
    // '不能输入空格符号'
    if (!value) return true
    return /^[^\s]*$/.test(value)
  }
}

export default new Regex()
